package com.jdjw.modules.busassetapply.service.impl;

import com.jdjw.common.ResponseResult;
import com.jdjw.modules.busassetapply.entity.BusAssetApply;
import com.jdjw.modules.busassetapply.entity.BusAssetApplyVo;
import com.jdjw.modules.busassetapply.entity.Dept;
import com.jdjw.modules.busassetapply.mapper.BusAssetApplyMapper;
import com.jdjw.modules.busassetapply.service.BusAssetApplyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 村级资产——资产资源处置申请 服务实现类
 * </p>
 *
 * @author fq
 * @since 2021-07-13
 */
@Service
public class BusAssetApplyServiceImpl extends ServiceImpl<BusAssetApplyMapper, BusAssetApply> implements BusAssetApplyService {

    @Autowired
    private BusAssetApplyMapper busAssetApplyMapper;


    @Override
    public ResponseResult queryAll(BusAssetApplyVo busAssetApplyVo) {
        ResponseResult result=new ResponseResult();
        try {
            //拿到数据起始位置
            int start=busAssetApplyVo.getPage()*busAssetApplyVo.getRow()-busAssetApplyVo.getRow();
            busAssetApplyVo.setPage(start);
            List<BusAssetApply> busAssetApplies = busAssetApplyMapper.queryAll(busAssetApplyVo);
            for (BusAssetApply busAssetApply : busAssetApplies) {
                //获取到（市、镇街、村）
                String orgCode = busAssetApply.getOrgCode();
                //接收 查到数据
                List<Dept> depts =new ArrayList<>();
                getList(orgCode,depts);
                busAssetApply.setCity(depts.get(2).getName());//市
                /* busAssetApply.setDistrict(depts.get(2).getName()); */
                busAssetApply.setTowns(depts.get(1).getName());//镇街
                busAssetApply.setVillages(depts.get(0).getName());//村
            }

            if ("CZSQ".equals(busAssetApplyVo.getNodeLogo())){
                for (BusAssetApply apply : busAssetApplies) {
                    if ("3".equals(apply.getStatus())) {
                        apply.setStatus("6");
                    }
                }
            }
            result.setMsg("查询成功");
            result.setCode(200);
            result.setData(busAssetApplies);
        } catch (Exception e) {
            result.setCode(500);
            result.setMsg(e.getMessage()+"查询异常");
            e.printStackTrace();
        }
        return result;
    }

    @Override
    public ResponseResult edit(String sqlEdit) {
        boolean edit = busAssetApplyMapper.edit(sqlEdit);
        ResponseResult rr=new ResponseResult();
        if(edit){
            rr.setMsg("编辑成功");
            rr.setCode(200);
        }else{
            rr.setMsg("编辑失败");
            rr.setCode(500);
        }
        return rr;
    }

    public List<Dept> getList(String deptId, List<Dept> list){
        Dept dept = busAssetApplyMapper.deptById(deptId);
        if(dept != null ){
            list.add(dept);
            return getList(dept.getParentId(), list);
        }
        return list;
    }
}
